CORS (Cross-Origin Resource Sharing) Hakkında
CORS (Çapraz Kaynak Paylaşımı), bir web sayfasının farklı bir etki alanından kaynaklara erişmesini sağlayan bir mekanizmadır. Tarayıcılar, güvenlik nedeniyle aynı etki alanı ilkesini uygular. Bu ilke, bir web sayfasının yalnızca kendi etki alanından kaynaklara erişmesine izin verir. Ancak, CORS bu kısıtlamayı aşmak için bir yol sunar.
Temel Kavramlar:
Aynı Etki Alanı İlkesi (Same-Origin Policy): Tarayıcıların, bir etki alanından yüklenen betiklerin (script) başka bir etki alanından gelen verilere erişmesini engelleyen bir güvenlik önlemidir. Daha fazla bilgi için: Aynı Etki Alanı İlkesi
Çapraz Kaynak İsteği (Cross-Origin Request): Bir web sayfasının etki alanından farklı bir etki alanındaki bir kaynağa (örneğin, bir API'ye) yapılan istektir. Daha fazla bilgi için: Çapraz Kaynak İsteği
CORS Nasıl Çalışır?
Tarayıcı İsteği: Tarayıcı, farklı bir etki alanına bir istek gönderir.
Sunucu Yanıtı: Sunucu, Access-Control-Allow-Origin
başlığı ile yanıt verir. Bu başlık, hangi etki alanlarının kaynağa erişmesine izin verildiğini belirtir.
Tarayıcı Kontrolü: Tarayıcı, Access-Control-Allow-Origin
başlığını kontrol eder. Eğer istekte bulunan etki alanı bu başlıkta belirtilmişse veya *
(herhangi bir etki alanı) belirtilmişse, tarayıcı isteği tamamlar. Aksi takdirde, tarayıcı isteği engeller.
CORS'u Etkinleştirme:
CORS'u etkinleştirmek için, sunucunun HTTP yanıt başlıklarına Access-Control-Allow-Origin
başlığını eklemesi gerekir. Örneğin:
Access-Control-Allow-Origin: *
(Herhangi bir etki alanına izin verir, ancak güvenlik açısından önerilmez.)Access-Control-Allow-Origin: https://example.com
(Sadece https://example.com
etki alanına izin verir.)Ön Kontrol İsteği (Preflight Request):
Bazı çapraz kaynak istekleri (özellikle PUT
, DELETE
gibi HTTP metotlarını kullananlar veya özel başlıklar içerenler) için, tarayıcı önce bir "ön kontrol" isteği (OPTIONS isteği) gönderir. Bu istek, sunucunun izin verilen metotları ve başlıkları belirtmesine olanak tanır. Daha fazla bilgi için: Ön Kontrol İsteği
Güvenlik Dikkat Edilmesi Gerekenler:
Access-Control-Allow-Origin: *
kullanmak, herhangi bir etki alanının kaynağa erişmesine izin verdiği için güvenlik riskleri oluşturabilir. Sadece güvenilir etki alanlarına izin vermek daha güvenlidir.Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page